package com.icinfo.cloud.provider.peripheralinterface.lawenforce.service;

import com.icinfo.cloud.provider.peripheralinterface.lawenforce.dto.CaseBaseInfoQueryDto;
import com.icinfo.cloud.provider.peripheralinterface.lawenforce.dto.CaseBaseInfoSaveDto;
import com.icinfo.cloud.provider.peripheralinterface.lawenforce.dto.CaseBaseInfoStatusUpdateDto;
import com.icinfo.cloud.provider.punish.api.dto.CaseBaseInfoResponse;
import com.icinfo.framework.common.web.Result;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.multipart.MultipartFile;

/**
 * 描述：TODO
 *
 * @Author zhengqiang
 * @Date 2023/1/6 11:15
 **/
public interface ILawenforceBusinessService {

    /**
     * 描述： 查询案件移送详情
     *
     * @author: zhengqiang
     * @date: 2023/1/5
     * @param: caseBaseId
     * @return {@link Result}
     **/
    Result getTransferCaseBaseDetail(String caseBaseId);

    /**
     * 描述： 移送案件表 新增数据
     *
     * @author: zhengqiang
     * @date: 2023/1/6
     * @param: caseBaseInfoDto
     * @return {@link Result< String>}
     **/
    Result<String> saveTransferCaseInfo(CaseBaseInfoSaveDto caseBaseInfoDto);


    /**
     * 描述： 根据所属类别查询数据列表(两法)
     *
     * @author: zhengqiang
     * @date: 2023/1/10
     * @param: ownType
     * @return {@link Result}
     **/
    Result getDicListByOwnType(String ownType);

    /**
     * 描述： 【V1.0.0】通用-省市区-选择树(全国)
     *
     * @author: zhengqiang
     * @date: 2023/1/10
     * @return {@link Result}
     **/
    Result getAllAreaTree();

    /**
     * 描述： 删除案件附带数据(两法)
     *
     * @author: zhengqiang
     * @date: 2023/1/10
     * @param: messageId
     * @param: messageType
     * @return {@link Result< String>}
     **/
    Result<String> delCaseCommonMessage(String messageId, String messageType);


    /**
     * 描述： 案件移送(两法)
     *
     * @author: zhengqiang
     * @date: 2023/1/10
     * @param: caseBaseId
     * @return {@link Result}
     **/
    Result sendTransferDataByCaseBaseInfo(CaseBaseInfoResponse caseBaseInfoResponse);

    /**
     * 描述： 根据案件id查询两法移送记录
     *
     * @author: zhengqiang
     * @date: 2023/1/10
     * @param: caseId
     * @return {@link CaseBaseInfoQueryDto}
     **/
    CaseBaseInfoQueryDto readCaseBaseInfoByCaseId(String caseId);

    /**
     * 描述： 修改移送案件状态
     *
     * @author: zhengqiang
     * @date: 2023/1/16
     * @param: caseBaseInfoStatusUpdateDto
     * @return {@link Result< String>}
     **/
    Result<String> updateLawCaseBaseInfoStatus(CaseBaseInfoStatusUpdateDto caseBaseInfoStatusUpdateDto);

}
